PyTorch
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
PyTorch est une bibliothèque logicielle Python open source d'apprentissage automatique qui s'appuie sur Torch (en) développée par Metacite-ref-2[2].
PyTorch est gouverné par la PyTorch Foundationcite-ref-3[3].
PyTorch permet d'effectuer les calculs tensoriels nécessaires notamment pour l'apprentissage profond (deep learning). Ces calculs sont optimisés et effectués soit par le processeur (CPU) soit, lorsque c'est possible, par un processeur graphique (GPU) supportant CUDA. PyTorch a été créé par les équipes de recherche de Facebook, précédées par les travaux de recherche de Ronan Collobert au cœur de l'équipe de Samy Bengiocite-ref-4[4] à l'IDIAP.
PyTorch se présente sous les traits d'un dérivé d'un logiciel antérieur, Torch, dont l'utilisation nécessitait la maîtrise du langage Lua. PyTorch est désormais indépendant de Lua et se programme en Python.
PyTorch permet, entre autres, de:
• calculer des gradients pour appliquer facilement des algorithmes d'optimisation par descente de gradient. PyTorch utilise la bibliothèque autogradcite-ref-5[5].
Contents
• Exemple
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Tenseurs PyTorch
PyTorch définit une classe appelée Tensor (torch.Tensor) pour stocker les données et opérer sur des tableaux rectangulaires multidimensionnels homogènes de nombres. Les tenseurs PyTorch sont similaires aux tableaux NumPy, mais peuvent également être utilisés sur un GPU Nvidia compatible CUDA. PyTorch prend en charge divers sous-types de Tensorscite-ref-6[6].
Historique
En mars 2018 Caffe2 (en) fusionne avec PyTorch cite-ref-7[7]. PyTorch rejoint la Fondation Linux en septembre 2022cite-ref-8[8].
Exemple
Le programme suivant montre la fonctionnalité de la bibliothèque avec un exemple simplecite-ref-9[9] :
import torch
dtype = torch.float
device = torch.device("cpu") # Tous les calculs seront exécutés sur le processeur
# device = torch.device("cuda:0") # Tous les calculs seront exécutés sur la carte graphique
# Création d'un tenseur rempli avec des nombres aléatoires
a = torch.randn(2, 3, device=device, dtype=dtype)
print(a) # Affichage du tenseur a
# Output: tensor([[-1.1884, 0.8498, -1.7129],
# [-0.8816, 0.1944, 0.5847]])
# Création d'un tenseur rempli avec des nombres aléatoires
b = torch.randn(2, 3, device=device, dtype=dtype)
print(b) # Affichage du tenseur b
# Output: tensor([[ 0.7178, -0.8453, -1.3403],
# [ 1.3262, 1.1512, -1.7070]])
print(a*b) # Affichage du produit (terme à terme) des deux tenseurs
# Output: tensor([[-0.8530, -0.7183, 2.58],
# [-1.1692, 0.2238, -0.9981]])
print(a.sum()) # Affichage de la somme de tous les éléments du tenseur a
# Output: tensor(-2.1540)
print(a[1,2]) # Affichage de l'élément de la 2ème rangée et de la 3ème colonne de a
# Output: tensor(0.5847)
print(a.min()) # Affichage de la valeur minimale du tenseur a
# Output: tensor(-1.7129)
PyTorch Tensors
PyTorch utilise essentiellement des Tensors : torch.Tensor. Similaires aux tables de NumPy, cette structure de donnée permet de stocker un tableau multidimensionnel de forme homogène. Les Tenors peuvent également être transférés depuis le CPU (par défaut) sur un GPU (et vise-versa). Les GPU de NVIDIA, sous plateforme CUDA sont pleinement compatibles. D’autres plateformes sont en cours de développement comme les GPU d'AMD sous la plateforme ROCm™, d’Apple avec MPS cite-ref-10[10] .
Il est à noter que les Tensors ont de tenseurs que le nom (comme dans le machine learning finallement). Ils ont en effet un but premier de stockage sous forme de table multi-dimensionel même si certaines méthodes d’algèbre linéaire y sont implémentés.
Articles connexes
Notes et références
cite-note-wikidata-e60ed16e7233f0503f3e2bda125c46544fc48ce5-11. « Release 2.9.0 », 15 octobre 2025 (consulté le 20 octobre 2025)
cite-note-22. ↑ bergounhoux2018julien-bergounhoux2018Julien Bergounhoux, « Avec PyTorch 1.0, Facebook cherche à créer la boite à outil ultime pour l'intelligence artificielle », L'Usine digitale, 4 mai 2018 (lire en ligne)
cite-note-33. ↑ (en) « PyTorch », sur www.pytorch.org (consulté le 13 septembre 2022)
cite-note-44. ↑ 2002(en) « Torch: A Modular Machine Learning Software Library », sur citeseerx.ist.psu.edu, 30 octobre 2002 (consulté le 24 décembre 2018)
cite-note-55. ↑ « Automatic differentiation package - torch.autograd — PyTorch master documentation », sur pytorch.org (consulté le 24 décembre 2018)
cite-note-66. ↑ 2018« An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library », sur analyticsvidhya.com, 22 février 2018 (consulté le 11 juin 2018)
cite-note-77. ↑ 2018(en) « Caffe2 and PyTorch join forces to create a research + production platform » [« Caffe2 et PyTorch s'unissent pour créer une plateforme de recherche et de production »], sur Official Caffe2 Blog, 2 mai 2018 (consulté le 17 mai 2024)
cite-note-88. ↑ lebrief2022#LeBrief, « Meta transfère la gouvernance de PyTorch à la Linux Foundation », sur nextinpact.com, 13 septembre 2022 (consulté le 13 septembre 2022)
cite-note-1010. ↑ (en) « Introducing Accelerated PyTorch Training on Mac » [archive du 29 janvier 2024], pytorch.org (consulté le 4 juin 2022)
• Portail des logiciels libres
• Portail des données
• Portail de l’intelligence artificielle